import { LoggerComponent } from '../components';
import { ccclass } from '../decorators';

/**
 * - 作者: DoooReyn
 * - 日期: 2023.10.29
 * - 名称: BaseView
 * - 描述: 视图基类
 */
@ccclass('BaseView')
export class BaseView extends LoggerComponent {
    protected onLoad(): void {}

    /** 显示 */
    public async show(): Promise<void> {
        this.logger.debug('显示');
        this.node.active = true;
    }

    /** 隐藏 */
    public async hide(): Promise<void> {
        this.logger.debug('隐藏');
        this.node.active = false;
    }

    /** 是否显示 */
    public get visible() {
        return this.node.activeInHierarchy;
    }

    /** 初始化 */
    public async init() {
        this.logger.debug('初始化');
    }

    /** 退出舞台时调用 */
    async exit() {
        await this.hide();
        this.logger.debug('退出舞台');
    }

    /** 进入舞台时调用 */
    public async enter() {
        await this.show();
        this.logger.debug('进入舞台');
    }
}
